Component({
  /**
   * 组件的属性列表
   */
  properties: {
    // 初始化数量
    count: {
      type: Number,
      value: 1
    },
    // 最大值
    maxValue: {
      type: Number,
      value: 10000
    },
    // 最小值
    miniValue: {
      type: Number,
      value: 1
    },
    // 提示文案
    tips: {
      type: Array,
      value: ['超出最小值','超出最大值']
    }
  },

  /**
   * 组件的初始数据
   */
  data: {

  },

  /**
   * 组件的方法列表
   */
  methods: {
    // 提示框
    _showToast(message){
      wx.showToast({
        title: message,
        icon: 'none',
        duration: 2000
      })
    },
    // 减号
    _reduce: function () {
      let count = this.data.count          // 基本值
      let maxValue = this.data.maxValue    // 最大值
      let miniValue = this.data.miniValue  // 最小值
      let tips = this.data.tips            // 提示文案
    
      count > miniValue ? count-- : miniValue
      this.setData({
        count: count
      })
      var myEventDetail = {
        value: count
      }
      // 最小极值
      if (count <= miniValue) {
        this._showToast(tips[0])
      }
      this.triggerEvent('myEvent', myEventDetail)
    },
    // 表单input
    _changeInput: function (event) {
      let maxValue = this.data.maxValue    // 最大值
      let miniValue = this.data.miniValue  // 最小值
      let count = event.detail.value       // 输入值
      let tips = this.data.tips            // 提示文案

      // 最大值
      if (count > maxValue){
        count = maxValue
        this._showToast(tips[1])
      }
      // 最小值
      if (count < miniValue){
        count = miniValue
        this._showToast(tips[0])
      }
      this.setData({
        count: count
      })
      var myEventDetail = {
        value: count
      }
      // 数据改变时 向父组件传递新数据
      this.triggerEvent('myEvent', myEventDetail)
    },
    // 加号
    _add: function () {
      let count = this.data.count          // 基本值
      let maxValue = this.data.maxValue    // 最大值
      let miniValue = this.data.miniValue  // 最小值
      let tips = this.data.tips            // 提示文案
      
      count < maxValue ? ++count : maxValue
      this.setData({
        count: count
      })
      var myEventDetail = {
        value: count
      }
      // 最大极值
      if (count >= maxValue) {
        this._showToast(tips[1])
      }
      this.triggerEvent('myEvent', myEventDetail)
    }
  }
})
